package com.bjpowernode.crm.workbench.service;

import com.bjpowernode.crm.settings.domain.User;
import com.bjpowernode.crm.workbench.domain.Clue;
import com.bjpowernode.crm.workbench.dto.ClueQueryDto;
import com.bjpowernode.crm.workbench.dto.ClueConvertingDto;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * 处理线索相关业务
 *
 * @author 刘逸晖
 */
public interface ClueService {

    /**
     * 新增线索
     *
     * @param clue 线索信息
     * @param http 会话
     */
    void insertClue(Clue clue, HttpSession session);

    /**
     * 根据 id 查线索
     *
     * @param id 线索的 id
     * @return 线索
     */
    Clue queryClueById(String id);

    /**
     * 根据条件分页查询线索
     *
     * @param clueQueryDto 条件
     * @return 线索列表
     */
    List<Clue> queryCluesByConditions(ClueQueryDto clueQueryDto);

    /**
     * 转换线索到客户、联系人
     *
     * @param clueConvertingDto 相关参数
     * @param currentUser       当前用户
     */
    void convertClue(ClueConvertingDto clueConvertingDto, User currentUser);

    /**
     * 根据 id 删除线索
     *
     * @param id 线索的 id
     */
    void deleteClueById(String id);

}
